﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demo03
{
    class Program
    {   //定义一个方法，求一个整数数组中的最大值，最小值，和，平均数。
        //如果是一个方法只能有一个返回值，那只能每一个都得定义一个方法来实现，不过有了ref和out这实现起来就方便多了。
        static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6 };
            int max1;
            int min1;
            float avg1;//使用out，不需要在此处初始化，初始化也不会影响到方法内部的值
            int sum1 = GetNum1(arr, out max1, out min1, out avg1);
            Console.WriteLine("和为：{0}，最大值为：{1}，最小值为{2}，平均值为{3}", sum1, max1, min1, avg1);
            int max2 = 0;
            int min2 = 0;
            float avg2 = 0;//使用ref,需要在这里赋值。
            int sum2 = GetNum2(arr, ref max2, ref min2, ref avg2);
            Console.WriteLine("和为：{0}，最大值为：{1}，最小值为{2}，平均值为{3}", sum2, max2, min2, avg2);
        }
        static int GetNum1(int[] a, out int max1, out int min1, out float avg1)
        {
            int sum1 = 0;
            max1 = a[0];
            min1 = a[0];
            for (int i = 0; i < a.Length; i++)
            {
                sum1 += a[i];

                if (max1 < a[i])
                {
                    max1 = a[i];
                }
                if (min1 > a[i])
                {
                    min1 = a[i];
                }
            }
            avg1 = sum1 / a.Length;
            return sum1;
        }
        static int GetNum2(int[] a, ref int max2, ref int min2, ref float avg2)
        {
            int sum2 = 0;
            max2 = a[0];
            min2 = a[0];
            for (int i = 0; i < a.Length; i++)
            {
                sum2 += a[i];

                if (max2 < a[i])
                {
                    max2 = a[i];
                }
                if (min2 > a[i])
                {
                    min2 = a[i];
                }
            }
            avg2 = sum2 / a.Length;
            return sum2;
        }
    }
}